C++fstream文件流处理对中文字符不支持的解决办法

您所在的位置:网站首页 elite dangerous 不支持中文咋办 C++fstream文件流处理对中文字符不支持的解决办法

C++fstream文件流处理对中文字符不支持的解决办法

2024-05-10 01:26| 来源: 网络整理| 查看: 265

  今天由于要写代码规总,提交文档。由于文件太多一个个复制觉得麻烦,就想着自己写一个程序完成这项任务。

  任务目标:就是把指定文件夹里的所有简单文档的内容全部写入到一个文档内!!!

【以下内容转自:我住包子山 让VS2005中的fstream支持中文路径文件打开 】

  前几天发了这篇《用fstream对二进制文件的读写》,有朋友指出了VS2005的fstream对于中文路径支持不好的bug。我想大概是因为VS2005更加重视了对字符串的全球化支持,所以鼓励我们使用unicode编码的字符串,对于MBCS之类的支持可能就疏忽了吧。

  我搜索了一下这个问题的解决,参考了如下资料写了演示代码。

fstream 和 中文路径  c++博客 About unicode settings in visual studio 2005, it really puzzled me a lot ms forum MSDN

   我综合了以上的内容,总结了3种方法,能够较好解决大家的困扰,包括可能无法使用cout的问题。

  PS: 补充一下,第一种方法,如果不是静态字符串当作路径的话,记得传入TCHAR*类型字符串作为路径,应该就没问题了。

View Code /******************************************************************** * created: 2008/05/10 * created: 10:5:2008 23:56 * filename: k:\sj\fstreamTest\fstreamTest\main.cpp * file path: k:\sj\fstreamTest\fstreamTest * file base: main * file ext: cpp * author: Gohan *********************************************************************/ #include #include #include using namespace std; int main() { /************************************************************************/ /* 方法1,使用_TEXT()宏定义将字符串常量指定为TCHAR*类型 */ /* 如果是我,首选此类型 */ /************************************************************************/ fstream file; file.open(_TEXT("c:\\测试\\测试文本.txt")); cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3